Python é uma linguagem de altíssimo nível (em inglês, Very High Level Language) orientada a objeto, de tipagem dinâmica e forte, interpretada e interativa.
O Python possui uma sintaxe clara e concisa, que favorece a legibilidade do código fonte, tornando a linguagem mais produtiva.
A linguagem inclui diversas estruturas de alto nível (listas, dicionários, data / hora, complexos e outras) e uma vasta coleção de módulos prontos para uso, além de frameworks de terceiros que podem ser adicionados. Também possui recursos encontrados em outras linguagens modernas, tais como: geradores, introspecção, persistência, metaclasses e unidades de teste. Multiparadigma, a linguagem suporta programação modular e funcional, além da orientação a objetos. Mesmo os tipos básicos no Python são objetos. A linguagem é interpretada através de bytecode pela máquina virtual Python, tornando o código portável. Com isso é possível compilar aplicações em uma plataforma e rodar em outros sistemas ou executar direto do código fonte.
Python é um software de código aberto (com licença compatível com a General Public License (GPL), porém menos restritiva, permitindo que o Python seja inclusive incorporado em produtos proprietários). A especificação da linguagem é mantida pela Python Software Foundation (PSF).
Além de ser utilizado como linguagem principal no desenvolvimento de sistemas, o Python também é muito utilizado como linguagem script em vários softwares, permitindo automatizar tarefas e adicionar novas funcionalidades, entre eles: BrOffice.org, PostgreSQL, Blender, GIMP e Inkscape.
É possível integrar o Python a outras linguagens, como a Linguagem C e Fortran. Em termos gerais, a linguagem apresenta muitas similaridades com outras linguagens dinâmicas, como Perl e Ruby.
A linguagem foi criada em 1990 por Guido van Rossum, no Instituto Nacional de Pesquisa para Matemática e Ciência da Computação da Holanda (CWI) e tinha originalmente foco em usuários como físicos e engenheiros. O Python foi concebido a partir de outra linguagem existente na época, chamada ABC.
Hoje, a linguagem é bem aceita na indústria por empresas de alta tecnologia, tais como:
A implementação oficial do Python é mantida pela PSF e escrita em C, e por isso, é também conhecida como CPython. A versão estável mais recente está disponível para download no endereço:
http://www.python.org/download/
Para a plataforma Windows, basta executar o instalador. Para outras plataformas, como em sistemas Linux, geralmente o Python já faz parte do sistema, porém em alguns casos pode ser necessário compilar e instalar o interpretador a partir dos arquivos fonte.
Existem também implementações de Python para .NET (IronPython), JVM (Jython) e em Python (PyPy).
Exemplo de programa em Python:
In [3]:
# O caractere "#" indica que o resto da linha é um comentário
# Uma lista de instrumentos musicais
instrumentos = ['Baixo', 'Bateria', 'Guitarra']
# Para cada nome na lista de instrumentos
for instrumento in instrumentos:
# mostre o nome do instrumento musical
print instrumento
No exemplo, instrumentos
é uma lista contendo os itens “Baixo”, “Bateria” e “Guitarra”. Já instrumento
é um nome que corresponde a cada um dos itens da lista, conforme o laço é executado.
Os arquivos fonte são identificados geralmente pela extensão “.py” e podem ser executados diretamente pelo interpretador:
python apl.py
Assim o programa apl.py
será executado. No Windows, as extensões de arquivo “.py”, “.pyw”, “.pyc” e “.pyo” são associadas ao Python automaticamente durante a instalação, então é só clicar no arquivo para executar. Os arquivos “.pyw” são executados com uma versão alternativa do interpretador que não abre a janela de console.
Python utiliza tipagem dinâmica, o que significa que o tipo de uma variável é inferido pelo interpretador em tempo de execução (isto é conhecido como Duck Typing). No momento em que uma variável é criada através de atribuição, o interpretador define um tipo para a variável, com as operações que podem ser aplicadas.
A tipagem do Python é forte, ou seja, o interpretador verifica se as operações são válidas e não faz coerções automáticas entre tipos incompatíveis. Para realizar a operação entre tipos não compatíveis, é necessário converter explicitamente o tipo da variável ou variáveis antes da operação.
O código fonte é traduzido pelo Python para bytecode, que é um formato binário com instruções para o interpretador. O bytecode é multiplataforma e pode ser distribuído e executado sem fonte original.
Por padrão, o interpretador compila o código e armazena o bytecode em disco, para que a próxima vez que o executar, não precise compilar novamente o programa, reduzindo o tempo de carga na execução. Se os arquivos fontes forem alterados, o interpretador se encarregará de regerar o bytecode automaticamente, mesmo utilizando o shell interativo. Quando um programa ou um módulo é evocado, o interpretador realiza a análise do código, converte para símbolos, compila (se não houver bytecode atualizado em disco) e executa na máquina virtual Python.
O bytecode é armazenado em arquivos com extensão “.pyc” (bytecode normal) ou “.pyo” (bytecode otimizado). O bytecode também pode ser empacotado junto com o interpretador em um executável, para facilitar a distribuição da aplicação, eliminando a necessidade de instalar Python em cada computador.
O interpretador Python pode ser usado de forma interativa, na qual as linhas de código são digitadas em um prompt (linha de comando) semelhante ao shell do sistema operacional.
python
Ele estará pronto para receber comandos após o surgimento do sinal de espera >>>
na tela:
Python 2.6.4 (r264:75706, Nov 3 2009, 13:20:47)
[GCC 4.4.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
No Windows, o modo interativo está disponível também através do ícone “Python (command line)”.
O modo interativo é uma característica diferencial da linguagem, pois é possível testar e modificar trechos de código antes da inclusão do código em programas, fazer extração e conversão de dados ou mesmo analisar o estado dos objetos que estão em memória, entre outras possibilidades.
Além do modo interativo tradicional do Python, existem outros programas que funcionam como alternativas, com interfaces mais sofisticadas (como o PyCrust):
Existem muitas ferramentas de desenvolvimento para Python, como IDEs, editores e shells (que aproveitam da capacidade interativa do Python).
Integrated Development Environments (IDEs) são pacotes de software que integram várias ferramentas de desenvolvimento em um ambiente consistente, com o objetivo de aumentar a produtividade do desenvolvedor. Geralmente, as IDEs incluem recursos como syntax highlight (código fonte colorizado conforme a sintaxe da linguagem), navegadores de código, shell integrado e code completion (o editor apresenta durante a digitação formas possíveis de completar o texto que ele consegue identificar).
Entre as IDEs que suportam Python, encontram-se:
Existem também editores de texto especializados em código de programação, que possuem funcionalidades como colorização de sintaxe, exportação para outros formatos e conversão de codificação de texto.
Esses editores suportam diversas linguagens de programação, dentre elas o Python:
Shell é o nome dado aos ambientes interativos para execução de comandos, que podem ser usados para testar pequenas porções de código e para atividades como data crunching (extração de informações de interesse de massas de dados e a subsequente tradução para outros formatos).
Além do próprio Shell padrão do Python, existem os outros disponíveis:
Os empacotadores são utilitários que são usados para construir executáveis que englobam o bytecode, o interpretador e outras dependências, permitindo que o aplicativo rode em máquinas sem Python instalado, o que facilita a distribuição de programas.
Entre empacotadores feitos para Python, estão disponíveis:
Frameworks são coleções de componentes de software (bibliotecas, utilitários e outros) que foram projetados para serem utilizados por outros sistemas.
Alguns frameworks disponíveis mais conhecidos:
O nome Python foi tirado por Guido van Rossum do programa da TV britânica Monty Python Flying Circus, e existem várias referências na documentação da linguagem ao programa, como, por exemplo, o repositório oficial de pacotes do Python se chamava Cheese Shop, que era o nome de um dos quadros do programa. Atualmente, o nome do repositório é Python Package Index (PYPI).
As metas do projeto foram resumidas por Tim Peters em um texto chamado Zen of Python, que está disponível no próprio Python através do comando:
In [6]:
import this
O texto enfatiza a postura pragmática do Benevolent Dictator for Life (BDFL), como Guido é conhecido na comunidade Python.
Propostas para melhoria da linguagem são chamadas de PEPs (Python Enhancement Proposals), que também servem de referência para novos recursos a serem implementados na linguagem.
Além do site oficial, outras boas fontes de informação sobre a linguagem são: PythonBrasil, o site da comunidade Python no Brasil, com bastante informação em português, e Python Cookbook, site que armazena “receitas”: pequenas porções de código para realizar tarefas específicas.
In [1]:
Out[1]: